package com.aizuda.boot.modules.business.contract.service;

import com.aizuda.boot.modules.business.contract.entity.WorkflowTypeEntity;
import com.aizuda.boot.modules.business.contract.dto.SingleResponse;
import com.aizuda.boot.modules.business.contract.entity.dto.WorkflowTypeAddRequest;
import com.aizuda.boot.modules.business.contract.entity.dto.WorkflowTypeSortRequest;
import com.aizuda.boot.modules.business.contract.entity.dto.WorkflowTypeUpdateRequest;
import com.aizuda.boot.modules.business.contract.entity.vo.WorkflowTypeResponse;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Author sangyirong
 * @ClassName WorkflowTypeService
 * @Version 1.0
 * @Date 2025/6/10 19:12
 */
public interface WorkflowTypeService extends IService<WorkflowTypeEntity> {


    /**
     * 获取流程类型列表
     *
     * @return
     */
    SingleResponse<List<WorkflowTypeResponse>> queryWorkflowTypeList();

    /**
     * 新增流程类型
     *
     * @param request
     * @return
     */
    SingleResponse<Void> createWorkflowType(WorkflowTypeAddRequest request);

    /**
     * 获取流程类型详情
     * @param id
     * @return
     */
    SingleResponse<WorkflowTypeResponse> getWorkflowTypeById(Integer id);

    /**
     * 更新流程类型
     *
     * @param request
     * @return
     */
    SingleResponse<Void> updateWorkflowType(WorkflowTypeUpdateRequest request);

    /**
     * 删除流程类型
     * @param id
     * @return
     */
    SingleResponse<Void> removeWorkflowType(Integer id);

    /**
     * 流程类型排序
     * @param request
     * @return
     */
    SingleResponse<Void> sortWorkflowType(WorkflowTypeSortRequest request);
}
